using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using NCI.EasyObjects;
using System.Data.Common;
using Microsoft.Practices.EnterpriseLibrary.Data;
using CMS.BLL.Entity;
using CMS.DAL;

namespace CMS.BLL
{
    public class Adv
    {
         #region Common
        public eAdv   Data;

        public Adv()
        {
            Data = new eAdv();
		}

        ~Adv()
        {
		}

		public virtual void Dispose()
        {
		}

        public int DeleteById(int ID)
        {
            int nResult = 0;
            cAdv objDAL = new cAdv();
            try
            {
                objDAL.LoadByPrimaryKey(ID);
                objDAL.MarkAsDeleted();
                objDAL.Save();
                nResult = ID;
            }
            catch
            {
                nResult = 0;
            }
            return nResult;
        }

        public void LoadById(int ID)
        {
            cAdv objDAL = new cAdv();
            objDAL.LoadByPrimaryKey(ID);
            ConvertData(objDAL);
        }

        public int Insert()
        {
            int nResult = 0;
            cAdv objInfor = new cAdv(); 
            try
            {
                objInfor.AddNew();
                this.MappingData(objInfor);
                objInfor.Save();
                nResult = 1;
            }
            catch
            {
                nResult = 0; 
            }
            return nResult;
        }

        public int Update(int ID)
        {
            int nResult = 0;
            cAdv objInfor = new cAdv();
            try
            {
                objInfor.LoadByPrimaryKey(ID);
                this.MappingData(objInfor);
                objInfor.Save();
                nResult = ID; 
            }
            catch
            {
                nResult = 0; 
            }
            return nResult;
        }

        public int UpdateStatus(int ID, int Status)
        {
            int nResult = 0;
            cAdv objDAL = new cAdv();
            try
            {
                objDAL.LoadByPrimaryKey(ID);
                objDAL.Status = Status;
             
                objDAL.Save();
                nResult = objDAL.AdvID;
            }
            catch
            {
                nResult = 0;
            }
            return nResult;
        }

        private void MappingData(cAdv objInfor)
        {
            objInfor.PartnerName = Data.PartnerName;   
            objInfor.AdvURL = Data.AdvURL;  
            objInfor.AdvFile = Data.AdvFile; 
            objInfor.AdvTypeID = Data.AdvTypeID; 
            objInfor.AdvPositionID = Data.AdvPositionID;   
            objInfor.Status = Data.Status;  
            objInfor.Priority = Data.Priority; 
            objInfor.CreatedDate = Data.CreatedDate;
            objInfor.ExpiredDate = Data.ExpiredDate;
            objInfor.Description = Data.Description;
            
        }

        private void ConvertData(cAdv objInfor)
        {
            Data.PartnerName =objInfor.PartnerName  ;
            Data.AdvURL =objInfor.AdvURL  ;
            Data.AdvFile=objInfor.AdvFile  ;
            Data.AdvTypeID=objInfor.AdvTypeID  ;
            Data.AdvPositionID=objInfor.AdvPositionID  ;
            Data.Status =objInfor.Status  ;
            Data.Priority=objInfor.Priority  ;
            Data.CreatedDate=objInfor.CreatedDate  ;
            Data.ExpiredDate=objInfor.ExpiredDate ;
            Data.Description = objInfor.Description;
        }
        #endregion

        public DataTable Search(int ItemView, string Title, int AdvPositionID, int AdvTypeID, int Status, int PageIndex, int PageSize, ref int PageCount)
        {
            DataTable tbResult = new DataTable();
            cAdv objDAL = new cAdv();
            tbResult = objDAL.Search( ItemView,  Title,  AdvPositionID,  AdvTypeID,  Status,   PageIndex,  PageSize, ref  PageCount );
            return tbResult;
        }
    }
}
